Cocoa auto update
我们在进行Mac 桌面应用开发的时候,需要维护应用的更新。我们希望说每一次的新版本发布,用户都能够自动更新下载版本并且替换掉老版本。
首先需要一个文件服务器来存放 对外发布的软件压缩包。这里还维护一份releaseInfo.json对外描述已有的版本信息
1 | { |
客户端定时check版本信息,发现服务端有版本号大于自身版本号的时候 触发更新下载逻辑。 这里使用NSURLSession
即可,下载过程不在这里描述了。
当我们自行下载完安装包之后,如何帮助用户自动安装呢?
我们下载完成之后,可用使用NSTask
来调用一个 shell 脚本,让它来帮助我们结束老版本的进程,同时将下载好的新版本解压、拷贝内容到老版本的路径下、重新唤起App。 这个时候,app运行就是新版本的样式和逻辑
附上具体的shell脚本:
注意需要传入的参数:tarball指的下载的安装包路径,destination指的当前app的bundlePath
1 | function abort() { |